

export default class Common {
    /**
     * 通过节点连线获取模型的执行顺序
     */
    static getModelIdByOrder(linkList){
        //非空判断
        if(!linkList||linkList.length===0){
            return []
        }
        let ids=[];
        let startId=""
        for (let i = 0; i < linkList.length; i++) {
            let id=linkList[i].startId;
            let isStart=true;
            for (let j = 0; j < linkList.length; j++) {
                if(i===j){
                    continue
                }
                if(id===linkList[j].startId){
                    isStart=false;
                    break;
                }

            }
            //找到起点
            if(isStart){
                startId=id;
                ids.push(startId)
                ids.push(linkList[i].endId)
                break
            }

        }

        for (let i = 1; i < linkList.length; i++) {
            let id=Common.getNextId(linkList,ids[ids.length-1]);
            if(id){
                ids.push(id)
            }
        }


        return ids
    }

    static getNextId(linkList,startId){
        for (let i = 0; i < linkList.length; i++) {
            let id=linkList[i].startId;
            if(id===startId){
              return linkList[i].endId
            }
        }
        return null
    }
}

